package com.AAL.Model;

import java.io.Serializable;
import javax.persistence.*;

import java.util.List;


/**
 * The persistent class for the WheelDetails database table.
 * 
 */
@Entity
@Table(name="WheelDetails")
public class WheelDetail implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@Column(name="WheelDetailID")
	private String wheelDetailID;

	@Column(name="Diameter")
	private int diameter;

	@Column(name="Height")
	private int height;

	@Column(name="Loads")
	private double loads;

	@Column(name="OccupiedArea")
	private double occupiedArea;

	@Column(name="Specification")
	private String specification;

	@Column(name="TireStructure")
	private String tireStructure;

	@Column(name="Width")
	private int width;

	//bi-directional many-to-one association to ContractDetail
	@OneToMany(mappedBy="wheelDetail", cascade={CascadeType.REMOVE, CascadeType.REFRESH})
	private List<ContractDetail> contractDetails;

	//bi-directional many-to-one association to DeliveryMethodDetail
	@OneToMany(mappedBy="wheelDetail", cascade={CascadeType.REMOVE, CascadeType.REFRESH})
	private List<DeliveryMethodDetail> deliveryMethodDetails;

	//bi-directional many-to-one association to LogDetailsForStock
	@OneToMany(mappedBy="wheelDetail", cascade={CascadeType.REMOVE, CascadeType.REFRESH})
	private List<LogDetailsForStock> logDetailsForStocks;

	//bi-directional many-to-one association to OrderDetail
	@OneToMany(mappedBy="wheelDetail", cascade={CascadeType.REMOVE, CascadeType.REFRESH})
	private List<OrderDetail> orderDetails;

	//bi-directional many-to-one association to PlanDetailsOfWareHouse
	@OneToMany(mappedBy="wheelDetail", cascade={CascadeType.REMOVE, CascadeType.REFRESH})
	private List<PlanDetailsOfWareHouse> planDetailsOfWareHouses;

	//bi-directional many-to-one association to Price
	@OneToMany(mappedBy="wheelDetail", cascade={CascadeType.REMOVE, CascadeType.REFRESH})
	private List<Price> prices;

	//bi-directional many-to-one association to ProductsInStock
	@OneToMany(mappedBy="wheelDetail", cascade={CascadeType.REMOVE, CascadeType.REFRESH})
	private List<ProductsInStock> productsInStocks;

	//bi-directional many-to-one association to PurchaseInvoiceDetail
	@OneToMany(mappedBy="wheelDetail", cascade={CascadeType.REMOVE, CascadeType.REFRESH})
	private List<PurchaseInvoiceDetail> purchaseInvoiceDetails;

	//bi-directional many-to-one association to RequestingDetail
	@OneToMany(mappedBy="wheelDetail", cascade={CascadeType.REMOVE, CascadeType.REFRESH})
	private List<RequestingDetail> requestingDetails;

	//bi-directional many-to-one association to Speed
	@ManyToOne(cascade={CascadeType.REFRESH}, fetch=FetchType.EAGER)
	@JoinColumn(name="SpeedID")
	private Speed speed;

	//bi-directional many-to-one association to TypesOfWheel
	@ManyToOne(cascade={CascadeType.REFRESH}, fetch=FetchType.EAGER)
	@JoinColumn(name="TypeOfWheelID")
	private TypesOfWheel typesOfWheel;

    public WheelDetail() {
    }

	public String getWheelDetailID() {
		return this.wheelDetailID;
	}

	public void setWheelDetailID(String wheelDetailID) {
		this.wheelDetailID = wheelDetailID;
	}

	public int getDiameter() {
		return this.diameter;
	}

	public void setDiameter(int diameter) {
		this.diameter = diameter;
	}

	public int getHeight() {
		return this.height;
	}

	public void setHeight(int height) {
		this.height = height;
	}

	public double getLoads() {
		return this.loads;
	}

	public void setLoads(double loads) {
		this.loads = loads;
	}

	public double getOccupiedArea() {
		return this.occupiedArea;
	}

	public void setOccupiedArea(double occupiedArea) {
		this.occupiedArea = occupiedArea;
	}

	public String getSpecification() {
		return this.specification;
	}

	public void setSpecification(String specification) {
		this.specification = specification;
	}

	public String getTireStructure() {
		return this.tireStructure;
	}

	public void setTireStructure(String tireStructure) {
		this.tireStructure = tireStructure;
	}

	public int getWidth() {
		return this.width;
	}

	public void setWidth(int width) {
		this.width = width;
	}

	public List<ContractDetail> getContractDetails() {
		return this.contractDetails;
	}

	public void setContractDetails(List<ContractDetail> contractDetails) {
		this.contractDetails = contractDetails;
	}
	
	public List<DeliveryMethodDetail> getDeliveryMethodDetails() {
		return this.deliveryMethodDetails;
	}

	public void setDeliveryMethodDetails(List<DeliveryMethodDetail> deliveryMethodDetails) {
		this.deliveryMethodDetails = deliveryMethodDetails;
	}
	
	public List<LogDetailsForStock> getLogDetailsForStocks() {
		return this.logDetailsForStocks;
	}

	public void setLogDetailsForStocks(List<LogDetailsForStock> logDetailsForStocks) {
		this.logDetailsForStocks = logDetailsForStocks;
	}
	
	public List<OrderDetail> getOrderDetails() {
		return this.orderDetails;
	}

	public void setOrderDetails(List<OrderDetail> orderDetails) {
		this.orderDetails = orderDetails;
	}
	
	public List<PlanDetailsOfWareHouse> getPlanDetailsOfWareHouses() {
		return this.planDetailsOfWareHouses;
	}

	public void setPlanDetailsOfWareHouses(List<PlanDetailsOfWareHouse> planDetailsOfWareHouses) {
		this.planDetailsOfWareHouses = planDetailsOfWareHouses;
	}
	
	public List<Price> getPrices() {
		return this.prices;
	}

	public void setPrices(List<Price> prices) {
		this.prices = prices;
	}
	
	public List<ProductsInStock> getProductsInStocks() {
		return this.productsInStocks;
	}

	public void setProductsInStocks(List<ProductsInStock> productsInStocks) {
		this.productsInStocks = productsInStocks;
	}
	
	public List<PurchaseInvoiceDetail> getPurchaseInvoiceDetails() {
		return this.purchaseInvoiceDetails;
	}

	public void setPurchaseInvoiceDetails(List<PurchaseInvoiceDetail> purchaseInvoiceDetails) {
		this.purchaseInvoiceDetails = purchaseInvoiceDetails;
	}
	
	public List<RequestingDetail> getRequestingDetails() {
		return this.requestingDetails;
	}

	public void setRequestingDetails(List<RequestingDetail> requestingDetails) {
		this.requestingDetails = requestingDetails;
	}
	
	public Speed getSpeed() {
		return this.speed;
	}

	public void setSpeed(Speed speed) {
		this.speed = speed;
	}
	
	public TypesOfWheel getTypesOfWheel() {
		return this.typesOfWheel;
	}

	public void setTypesOfWheel(TypesOfWheel typesOfWheel) {
		this.typesOfWheel = typesOfWheel;
	}
	
}